class Solution:
    def restoreIpAddresses(self, s: str):
        result=[]
        def dfs(route,i):
            #print(route,i)
            nonlocal s
            if len(route)==4 and i==len(s):
                result.append(".".join(route))
            elif len(route)<4 and i<len(s):
                if s[i]!='0':
                    for j in range(1,min(4,len(s)-i+1)):
                        if int(s[i:i+j])<=255:
                            route.append(s[i:i+j])
                            dfs(route,i+j)
                            route.pop()
                else:
                    route.append(s[i])
                    dfs(route,i+1)
                    route.pop()
        dfs([],0)
        return result


s=Solution()
print(s.restoreIpAddresses("101023"))


'''
执行用时：
44 ms
, 在所有 Python3 提交中击败了
61.87%
的用户
内存消耗：
15.1 MB
, 在所有 Python3 提交中击败了
8.56%
的用户
'''